#!/bin/bash

# 项目根目录
ROOT_DIR="$(pwd)"

# 要替换的包名
OLD_PACKAGE="com.aishop"
NEW_PACKAGE="com.wgh"

# 替换resources目录下所有文件中的包名
echo "正在替换resources目录下文件中的包名: $OLD_PACKAGE -> $NEW_PACKAGE"
find "$ROOT_DIR" -path "*/src/main/resources/*" -type f \( -name "*.xml" -o -name "*.yml" -o -name "*.properties" \) -exec sed -i '' "s/$OLD_PACKAGE/$NEW_PACKAGE/g" {} \;
echo "  已处理所有resources目录下的文件"

# 替换test目录下所有文件中的包名
echo "正在替换test目录下文件中的包名: $OLD_PACKAGE -> $NEW_PACKAGE"
find "$ROOT_DIR" -path "*/src/test/*" -type f -name "*.java" -exec sed -i '' "s/$OLD_PACKAGE/$NEW_PACKAGE/g" {} \;
echo "  已处理所有test目录下的文件"

# 重命名test目录下的包目录结构
echo "正在重命名test目录下的包目录结构"
OLD_PATH="$(echo $OLD_PACKAGE | tr '.' '/')"
NEW_PATH="$(echo $NEW_PACKAGE | tr '.' '/')"

BACKEND_PROJECTS=($(ls -d shop-*))
for project in "${BACKEND_PROJECTS[@]}"; do
    if [ -d "$ROOT_DIR/$project/src/test/java/$OLD_PATH" ]; then
        # 创建新的包路径
        NEW_DIR="$ROOT_DIR/$project/src/test/java/$NEW_PATH"
        mkdir -p "$(dirname $NEW_DIR)"
        
        # 移动文件到新路径
        mv "$ROOT_DIR/$project/src/test/java/$OLD_PATH" "$NEW_DIR"
        
        # 清理旧的空目录
        find "$ROOT_DIR/$project/src/test/java" -type d -empty -delete
        
        echo "  已重命名项目 $project 的test包目录"
    fi
done

echo "资源文件包名重命名任务完成!"